const  parseXlsx = require('excel').default
let res = null

parseXlsx('测试.xlsx').then((data) => {
  // data is an array of arrays
  res = parseArr(data)
  console.log(res[3]);
  let temp1 = res[3][2]
  let temp2 = res[3][3]
  console.log((temp2.slice(1,-1))); 
})

function parseArr(arr){
  const res = {}
  arr.shift() // 去除表头
  removeEmptyLine(arr) // 去除空行
  checkFirstLine(arr) // 检查第一行，必须为全行

  arr.forEach((row, index) => {
    parseRow(row, index, arr)
  })
  return arr
}

// 移出空行
function removeEmptyLine(arr){
  const emptyIndex = []
  arr.forEach((row, index) => {
    isEmptyLine(row)?emptyIndex.push(index):''
  })
  emptyIndex.reverse()
  emptyIndex.forEach(item => {
    arr.splice(item, 1)
  })
}

// 判断是否为空行
function isEmptyLine(line){
  return line.every(cell => {
    if(!cell) return true
  })
}

// 判断是否为全行
function isFullLine(line){
  return line.every(cell => {
    if(cell) return true
  })
}

// 检查: 第一行必须都有值
function checkFirstLine(arr){
  if(!isFullLine(arr[0])){
    throw new Error('第一行有数据为空')
  }
}

// 处理每一行
function parseRow(row, index, arr){
  const pre = index - 1

  // 补齐第一列 和 第二列
  if(!row[0]){
    row[0] = arr[pre][0]
  }
  if(!row[1]){
    row[1] = arr[pre][1]
  }

  // 如果入参或者出参为空，则忽略这一行
  if(!row[2] || !row[3]){
    row[4] = 'ignore'
    return
  }

  // 解析入参 和 出参
  // row[2] = parseCell(row[2])
  // row[3] = parseCell(row[3])
}

function parseCell(cell){
  // 数字
  // 字符串
  // 布尔
  // 数组
  // 对象
}




